/*class func
{
public:
	func(){}
	~func(){}
public:
	int x;
};

class func1 : public virtual func
{
public:
	func1(){}
	~func1(){}
public:
	void func()
	{

	}
};

class func2 : public virtual func
{
public:
	func2(){}
	~func2(){}
public:
	void func()
	{

	}
};

class test : public func1, public func2
{
public:
	test(){}
	~test(){}
public:
	void func()
	{
		cout << "func() in test" << x << endl;
	}
};
*/
#include <iostream>
#include <string>

using namespace std;
class func
{
public:
	func(string a)
	{
		cout << "func()" << a << endl;
	}
	~func()
	{
		cout << "~func()" << endl;
	}
};

class test : public func
{
public:
	test() : func(" constructor")
	{
		cout << "test()" << endl;
	}
	~test()
	{
		cout << "~test()" << endl;
	}
};
int main()
{
	test a;
	return 0;
}


/*
#include <iostream>

using namespace std;
class test
{
public:
	test()
	{
		a=0;
		b=0;
	}
	test(int n1)
	{
		a = n1;
		b = 0;
	}
	test(int n1,int n2)
	{
		a= n1;
		b= n2;
	}
public:
	int a;
	int b;
};

int main()
{
	test a;

	cout << "a.a : " << a.a << " a.b : " << a.b << endl;

	test b(5);
	

	cout << "b.a : " << b.a << " b.b : " << b.b << endl;

	test c(3,4);

	cout << "c.a : " << c.a << " c.b : " << c.b << endl;

	test d(a);

	cout << "d.a : " << d.a << " d.b : " << d.b << endl;
	return 0;
	
}
*/